package cn.szq.springframework.beans.factory.config;

import cn.szq.springframework.beans.BeansException;
import cn.szq.springframework.beans.PropertyValues;

/**
 * @description:
 * @author: szq
 * @date: 2021-09-17 13:10:30
 */
public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {

    /**
     * 在bean初始化之前执行该方法
     * @param beanClass
     * @param beanName
     * @return
     * @throws BeansException
     */
    Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException;

    PropertyValues postProcessPropertyValues(PropertyValues pvs, Object bean, String beanName) throws BeansException;
}
